ജിൻജ 2 ഉപയോഗിച്ച് Flask ടെംപ്ലേറ്റ് ഇൻഹെറിറ്റൻസിനെക്കുറിച്ചുള്ള സമഗ്രമായ ഗൈഡ്. കാര്യക്ഷമമായ വെബ് ഡെവലപ്മെൻ്റിനായുള്ള അടിസ്ഥാന ടെംപ്ലേറ്റുകൾ, ബ്ലോക്ക് നിർവചനങ്ങൾ, പ്രായോഗിക ഉദാഹരണങ്ങൾ എന്നിവ ഇതിൽ ഉൾക്കൊള്ളുന്നു.
Flask ടെംപ്ലേറ്റ് ഇൻഹെറിറ്റൻസ്: ജിൻജ 2 ടെംപ്ലേറ്റ് ഓർഗനൈസേഷൻ മാസ്റ്റർ ചെയ്യുക
വെബ് ഡെവലപ്മെന്റിൽ, ഒന്നിലധികം പേജുകളിൽ സ്ഥിരമായ രൂപവും ഭാവവും നിലനിർത്തുന്നത് നിർണായകമാണ്. ഒരു ജനപ്രിയ പൈത്തൺ വെബ് ഫ്രെയിംവർക്കായ Flask, ടെംപ്ലേറ്റ് ഇൻഹെറിറ്റൻസിലൂടെ ഇത് സുഗമമാക്കുന്നതിന് ജിൻജ 2 വിൻ്റെ ശക്തി ഉപയോഗിക്കുന്നു. കോഡ് വീണ്ടും ഉപയോഗിക്കുന്നതിനും മെയിൻ്റനൻസ് ലളിതമാക്കുന്നതിനും പൊതുവായ ഘടകങ്ങളുള്ള ഒരു അടിസ്ഥാന ടെംപ്ലേറ്റ് നിർവചിക്കാനും മറ്റ് ടെംപ്ലേറ്റുകളിൽ അത് വികസിപ്പിക്കാനും ടെംപ്ലേറ്റ് ഇൻഹെറിറ്റൻസ് നിങ്ങളെ അനുവദിക്കുന്നു. ജിൻജ 2 ഉപയോഗിച്ച് Flask ടെംപ്ലേറ്റ് ഇൻഹെറിറ്റൻസിനെക്കുറിച്ചുള്ള ഒരു സമഗ്രമായ ഗൈഡ് ഈ ലേഖനം നൽകുന്നു. ഇതിൽ അതിൻ്റെ തത്വങ്ങൾ, നടപ്പാക്കൽ, മികച്ച രീതികൾ എന്നിവ ഉൾക്കൊള്ളുന്നു.
എന്താണ് ടെംപ്ലേറ്റ് ഇൻഹെറിറ്റൻസ്?
നിങ്ങളുടെ വെബ്സൈറ്റിൻ്റെ പ്രധാന ഘടനയും ലേഔട്ടും അടങ്ങിയ ഒരു അടിസ്ഥാന ടെംപ്ലേറ്റ് ഉണ്ടാക്കാൻ നിങ്ങളെ സഹായിക്കുന്ന ഒരു ഡിസൈൻ പാറ്റേണാണ് ടെംപ്ലേറ്റ് ഇൻഹെറിറ്റൻസ്. ചൈൽഡ് ടെംപ്ലേറ്റുകൾക്ക് ഈ അടിസ്ഥാന ടെംപ്ലേറ്റ് ഇൻഹെറിറ്റ് ചെയ്യാനും ഉള്ളടക്കം ഇഷ്ടമുള്ള രീതിയിൽ മാറ്റാനും കഴിയും. ഈ രീതി കോഡ് ഡ്യൂപ്ലിക്കേഷൻ കുറയ്ക്കുന്നു, സ്ഥിരത ഉറപ്പാക്കുന്നു, കൂടാതെ നിങ്ങളുടെ വെബ് ആപ്ലിക്കേഷനിലുടനീളം അപ്ഡേറ്റുകൾ ലളിതമാക്കുന്നു.
ഇത് ഒരു വീടിൻ്റെ ബ്ലൂപ്രിൻ്റ് പോലെ കരുതുക. അടിസ്ഥാന ടെംപ്ലേറ്റ് എന്നത് അടിത്തറ, മതിലുകൾ, മേൽക്കൂര എന്നിവ ഉൾപ്പെടെയുള്ള മൊത്തത്തിലുള്ള രൂപകൽപ്പനയാണ്. ഓരോ മുറിയും (ചൈൽഡ് ടെംപ്ലേറ്റ്) അടിസ്ഥാന ഘടന ഇൻഹെറിറ്റ് ചെയ്യുന്നു, പക്ഷേ വ്യത്യസ്ത ഫ്ലോറിംഗ്, പെയിൻ്റ്, ഫർണിച്ചറുകൾ എന്നിവ ഉപയോഗിച്ച് ഇഷ്ടമുള്ള രീതിയിൽ മാറ്റം വരുത്താനാകും.
ടെംപ്ലേറ്റ് ഇൻഹെറിറ്റൻസിൻ്റെ പ്രയോജനങ്ങൾ
- കോഡ് വീണ്ടും ഉപയോഗിക്കൽ: അടിസ്ഥാന ടെംപ്ലേറ്റിൽ പൊതുവായ ഘടകങ്ങൾ നിർവചിച്ച് ഒന്നിലധികം പേജുകളിൽ അവ വീണ്ടും ഉപയോഗിച്ച് അധിക കോഡിംഗ് ഒഴിവാക്കുക.
- സ്ഥിരത: ഹെഡറുകൾ, ഫൂട്ടറുകൾ, നാവിഗേഷൻ മെനുകൾ പോലുള്ള പങ്കിട്ട ഘടകങ്ങൾക്ക് ഒരേ ഉറവിടം നിലനിർത്തി നിങ്ങളുടെ വെബ്സൈറ്റിലുടനീളം സ്ഥിരമായ രൂപവും ഭാവവും ഉറപ്പാക്കുക.
- പരിപാലിക്കാനുള്ള എളുപ്പം: അടിസ്ഥാന ടെംപ്ലേറ്റിൽ മാറ്റങ്ങൾ വരുത്തി അപ്ഡേറ്റുകളും പരിഷ്ക്കരണങ്ങളും ലളിതമാക്കുക, അത് സ്വയമേവ എല്ലാ ചൈൽഡ് ടെംപ്ലേറ്റുകളിലേക്കും വ്യാപിപ്പിക്കും.
- ചിട്ടയായ രൂപകൽപ്പന: നിങ്ങളുടെ ടെംപ്ലേറ്റുകൾ ഒരു ലോജിക്കൽ രീതിയിൽ ക്രമീകരിക്കുക, ഇത് നിങ്ങളുടെ കോഡ് എളുപ്പത്തിൽ മനസ്സിലാക്കാനും കൈകാര്യം ചെയ്യാനും സഹായിക്കുന്നു.
- കുറഞ്ഞ ഡെവലപ്മെൻ്റ് സമയം: പുതിയ പേജുകൾ ആദ്യം മുതൽ നിർമ്മിക്കുന്നതിനുപകരം അടിസ്ഥാന ടെംപ്ലേറ്റ് ഒരു ആരംഭ പോയിന്റായി ഉപയോഗിച്ച് സമയവും പ്രയത്നവും ലാഭിക്കുക.
പ്രധാന ആശയങ്ങൾ മനസ്സിലാക്കുക
1. അടിസ്ഥാന ടെംപ്ലേറ്റ്
നിങ്ങളുടെ ടെംപ്ലേറ്റ് ഇൻഹെറിറ്റൻസ് ഘടനയുടെ അടിസ്ഥാനമാണ് അടിസ്ഥാന ടെംപ്ലേറ്റ്. നിങ്ങളുടെ വെബ്സൈറ്റിലെ എല്ലാ പേജുകളിലും അല്ലെങ്കിൽ മിക്ക പേജുകളിലും പങ്കിടുന്ന പൊതുവായ ഘടകങ്ങൾ ഇതിൽ അടങ്ങിയിരിക്കുന്നു. സാധാരണയായി HTML ഘടന, CSS സ്റ്റൈൽഷീറ്റുകൾ, JavaScript ഫയലുകൾ, ഹെഡർ, ഫൂട്ടർ, നാവിഗേഷൻ മെനു എന്നിവ ഇതിൽ ഉൾപ്പെടുന്നു.
ഒരു അടിസ്ഥാന ടെംപ്ലേറ്റിന്റെ ഉദാഹരണം (base.html
):
{% block title %}എൻ്റെ വെബ്സൈറ്റ്{% endblock %}
എൻ്റെ വെബ്സൈറ്റ്
{% block content %}{% endblock %}
ഈ ഉദാഹരണത്തിൽ, ഒരു ഹെഡർ, നാവിഗേഷൻ മെനു, പ്രധാന ഉള്ളടക്ക ഏരിയ, ഫൂട്ടർ എന്നിവയുള്ള ഒരു അടിസ്ഥാന HTML ഘടന ഞങ്ങൾ നിർവചിക്കുന്നു. ചൈൽഡ് ടെംപ്ലേറ്റുകളിൽ മാറ്റം വരുത്താൻ കഴിയുന്ന ഭാഗങ്ങൾ നിർവചിക്കുന്ന {% block %}
ടാഗുകൾ ശ്രദ്ധിക്കുക.
2. ബ്ലോക്ക് നിർവചനങ്ങൾ
അടിസ്ഥാന ടെംപ്ലേറ്റിലെ പ്ലെയ്സ്ഹോൾഡറുകളാണ് ബ്ലോക്കുകൾ, ചൈൽഡ് ടെംപ്ലേറ്റുകൾക്ക് ഇവ മാറ്റാനോ പരിഷ്കരിക്കാനോ കഴിയും. {% block %}
, {% endblock %}
ടാഗുകൾ ഉപയോഗിച്ചാണ് ഇവ നിർവചിക്കുന്നത്. അടിസ്ഥാന ടെംപ്ലേറ്റിലേക്ക് പ്രത്യേക ഉള്ളടക്കം ചേർക്കാൻ ബ്ലോക്കുകൾ നിങ്ങളെ അനുവദിക്കുന്നു.
മുകളിലെ base.html
ഉദാഹരണത്തിൽ, ഞങ്ങൾ രണ്ട് ബ്ലോക്കുകൾ നിർവചിച്ചു:
title
: ഇത് HTML ഡോക്യുമെൻ്റിൻ്റെ തലക്കെട്ട് നിർവചിക്കുന്നു.content
: ഇത് പേജിൻ്റെ പ്രധാന ഉള്ളടക്ക ഏരിയ നിർവചിക്കുന്നു.
3. ചൈൽഡ് ടെംപ്ലേറ്റുകൾ
ചൈൽഡ് ടെംപ്ലേറ്റുകൾ അടിസ്ഥാന ടെംപ്ലേറ്റ് ഇൻഹെറിറ്റ് ചെയ്യുകയും അടിസ്ഥാന ടെംപ്ലേറ്റിൽ നിർവചിച്ചിട്ടുള്ള ബ്ലോക്കുകൾ മാറ്റിയെഴുതുകയും ചെയ്യാം. ഒരു അടിസ്ഥാന ടെംപ്ലേറ്റ് ഇൻഹെറിറ്റ് ചെയ്യാൻ, ചൈൽഡ് ടെംപ്ലേറ്റിന്റെ തുടക്കത്തിൽ {% extends %}
ടാഗ് ഉപയോഗിക്കുക.
base.html
ടെംപ്ലേറ്റ് വികസിപ്പിക്കുന്ന ഒരു ചൈൽഡ് ടെംപ്ലേറ്റിന്റെ ഉദാഹരണം (index.html
):
{% extends 'base.html' %}
{% block title %}ഹോം - എൻ്റെ വെബ്സൈറ്റ്{% endblock %}
{% block content %}
ഹോം പേജിലേക്ക് സ്വാഗതം!
ഇത് ഹോം പേജിന്റെ ഉള്ളടക്കമാണ്.
{% endblock %}
ഈ ഉദാഹരണത്തിൽ, ഞങ്ങൾ base.html
ടെംപ്ലേറ്റ് വികസിപ്പിക്കുകയും title
, content
ബ്ലോക്കുകൾ മാറ്റിയെഴുതുകയും ചെയ്യുന്നു. title
ബ്ലോക്ക് "ഹോം - എൻ്റെ വെബ്സൈറ്റ്" എന്ന് സജ്ജീകരിക്കുന്നു, കൂടാതെ content
ബ്ലോക്ക് ഹോം പേജിന് പ്രത്യേകമായുള്ള ഉള്ളടക്കം ഉപയോഗിച്ച് മാറ്റുന്നു.
4. `super()` ഫംഗ്ഷൻ
ഒരു ചൈൽഡ് ടെംപ്ലേറ്റിൽ നിന്ന് അടിസ്ഥാന ടെംപ്ലേറ്റിൽ നിർവചിച്ചിട്ടുള്ള ഒരു ബ്ലോക്കിന്റെ ഉള്ളടക്കം ആക്സസ് ചെയ്യാൻ super()
ഫംഗ്ഷൻ നിങ്ങളെ അനുവദിക്കുന്നു. ഒരു ബ്ലോക്കിന്റെ ഉള്ളടക്കം പൂർണ്ണമായി മാറ്റാതെ തന്നെ അതിലേക്ക് ചേർക്കാനോ പരിഷ്കരിക്കാനോ ആഗ്രഹിക്കുമ്പോൾ ഇത് ഉപയോഗപ്രദമാണ്.
content
ബ്ലോക്കിലേക്ക് ഉള്ളടക്കം ചേർക്കാൻ super()
ഉപയോഗിക്കുന്നതിന്റെ ഉദാഹരണം:
{% extends 'base.html' %}
{% block content %}
{{ super() }}
ഇതൊരു അധിക ഉള്ളടക്കമാണ്. ഇത് അടിസ്ഥാന ടെംപ്ലേറ്റിന്റെ ഉള്ളടക്കത്തിലേക്ക് കൂട്ടിച്ചേർക്കുന്നു.
{% endblock %}
ഈ ഉദാഹരണത്തിൽ, super()
ഫംഗ്ഷൻ base.html
ടെംപ്ലേറ്റിൽ നിന്നുള്ള content
ബ്ലോക്കിന്റെ യഥാർത്ഥ ഉള്ളടക്കം ചേർക്കുന്നു, തുടർന്ന് ചൈൽഡ് ടെംപ്ലേറ്റ് അതിൻ്റേതായ ഉള്ളടക്കം അതിന് താഴെ ചേർക്കുന്നു.
Flask-ൽ ടെംപ്ലേറ്റ് ഇൻഹെറിറ്റൻസ് നടപ്പിലാക്കുന്നു
Flask-ൽ ടെംപ്ലേറ്റ് ഇൻഹെറിറ്റൻസ് ഉപയോഗിക്കാൻ, നിങ്ങളുടെ ടെംപ്ലേറ്റുകൾ ഒരു ലോജിക്കൽ ഡയറക്ടറി ഘടനയിൽ ക്രമീകരിക്കുകയും നിങ്ങളുടെ ടെംപ്ലേറ്റുകൾ കണ്ടെത്താൻ Flask-നെ കോൺഫിഗർ ചെയ്യുകയും വേണം.
1. ഡയറക്ടറി ഘടന
Flask ടെംപ്ലേറ്റുകൾക്കായുള്ള ഒരു സാധാരണ ഡയറക്ടറി ഘടന താഴെ പറയുന്നവയാണ്:
my_project/
app.py
templates/
base.html
index.html
about.html
contact.html
static/
style.css
script.js
ഈ ഘടനയിൽ, templates
ഡയറക്ടറിയിൽ അടിസ്ഥാന ടെംപ്ലേറ്റ്, ചൈൽഡ് ടെംപ്ലേറ്റുകൾ എന്നിവ ഉൾപ്പെടെ എല്ലാ HTML ടെംപ്ലേറ്റുകളും അടങ്ങിയിരിക്കുന്നു. static
ഡയറക്ടറിയിൽ CSS സ്റ്റൈൽഷീറ്റുകൾ, JavaScript ഫയലുകൾ പോലുള്ള സ്റ്റാറ്റിക് ഫയലുകൾ അടങ്ങിയിരിക്കുന്നു.
2. Flask കോൺഫിഗറേഷൻ
സ്ഥിരമായി, Flask നിങ്ങളുടെ ആപ്ലിക്കേഷന്റെ അതേ ഡയറക്ടറിയിലുള്ള templates
എന്ന ഡയറക്ടറിയിലാണ് ടെംപ്ലേറ്റുകൾ തിരയുന്നത്. Flask ആപ്പ് ഒബ്ജക്റ്റിന്റെ template_folder
ആട്രിബ്യൂട്ട് സജ്ജീകരിച്ച് നിങ്ങൾക്ക് ഇത് ഇഷ്ടമുള്ള രീതിയിൽ മാറ്റാവുന്നതാണ്.
ഒരു ഇഷ്ടമുള്ള ടെംപ്ലേറ്റ് ഫോൾഡർ ഉപയോഗിക്കാൻ Flask-നെ കോൺഫിഗർ ചെയ്യുന്നതിന്റെ ഉദാഹരണം:
from flask import Flask, render_template
app = Flask(__name__, template_folder='my_templates')
@app.route('/')
def index():
return render_template('index.html')
3. ടെംപ്ലേറ്റുകൾ റെൻഡർ ചെയ്യുന്നു
Flask-ൽ ഒരു ടെംപ്ലേറ്റ് റെൻഡർ ചെയ്യാൻ, render_template()
ഫംഗ്ഷൻ ഉപയോഗിക്കുക. ഈ ഫംഗ്ഷൻ ടെംപ്ലേറ്റ് ഫയലിന്റെ പേര് ഒരു ആർഗ്യുമെന്റായി എടുക്കുകയും റെൻഡർ ചെയ്ത HTML സ്ട്രിംഗ് നൽകുകയും ചെയ്യുന്നു.
index.html
ടെംപ്ലേറ്റ് റെൻഡർ ചെയ്യുന്നതിന്റെ ഉദാഹരണം:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
ഒരു ചൈൽഡ് ടെംപ്ലേറ്റ് റെൻഡർ ചെയ്യുമ്പോൾ, Flask സ്വയമേവ അടിസ്ഥാന ടെംപ്ലേറ്റ് ഉൾപ്പെടുത്തുകയും ചൈൽഡ് ടെംപ്ലേറ്റിൽ നിർവചിച്ചിട്ടുള്ള ബ്ലോക്ക് മാറ്റങ്ങൾ പ്രയോഗിക്കുകയും ചെയ്യുന്നു.
പ്രായോഗിക ഉദാഹരണങ്ങൾ
ഉദാഹരണം 1: ഒരു ലളിതമായ ബ്ലോഗ്
ഒരു അടിസ്ഥാന ടെംപ്ലേറ്റും ബ്ലോഗ് പോസ്റ്റുകൾക്കായി വ്യക്തിഗത ടെംപ്ലേറ്റുകളും ഉപയോഗിച്ച് നമുക്ക് ഒരു ലളിതമായ ബ്ലോഗ് ഉണ്ടാക്കാം.
base.html:
{% block title %}എൻ്റെ ബ്ലോഗ്{% endblock %}
എൻ്റെ ബ്ലോഗ്
{% block content %}{% endblock %}
post.html:
{% extends 'base.html' %}
{% block title %}{{ post.title }} - എൻ്റെ ബ്ലോഗ്{% endblock %}
{% block content %}
{{ post.title }}
പ്രസിദ്ധീകരിച്ചത്: {{ post.date }}
{{ post.content }}
{% endblock %}
ഈ ഉദാഹരണത്തിൽ, post.html
ടെംപ്ലേറ്റ് base.html
ടെംപ്ലേറ്റ് വികസിപ്പിക്കുകയും ബ്ലോഗ് പോസ്റ്റിന്റെ ശീർഷകം, തീയതി, ഉള്ളടക്കം എന്നിവ ഉപയോഗിച്ച് title
, content
ബ്ലോക്കുകൾ മാറ്റിയെഴുതുകയും ചെയ്യുന്നു. Flask റൂട്ടിൽ നിന്ന് post
വേരിയബിൾ ടെംപ്ലേറ്റിലേക്ക് കൈമാറ്റം ചെയ്യുന്നു.
app.py:
from flask import Flask, render_template
app = Flask(__name__)
posts = [
{
'title': 'ആദ്യത്തെ ബ്ലോഗ് പോസ്റ്റ്',
'date': '2023-10-27',
'content': 'ഇത് ആദ്യത്തെ ബ്ലോഗ് പോസ്റ്റിന്റെ ഉള്ളടക്കമാണ്.'
},
{
'title': 'രണ്ടാമത്തെ ബ്ലോഗ് പോസ്റ്റ്',
'date': '2023-10-28',
'content': 'ഇത് രണ്ടാമത്തെ ബ്ലോഗ് പോസ്റ്റിന്റെ ഉള്ളടക്കമാണ്.'
}
]
@app.route('/')
def index():
return render_template('index.html', posts=posts)
@app.route('/post/')
def post(post_id):
post = posts[post_id]
return render_template('post.html', post=post)
ഉദാഹരണം 2: ഒരു മൾട്ടി-ലാംഗ്വേജ് വെബ്സൈറ്റ്
ഒന്നിലധികം ഭാഷകളെ പിന്തുണയ്ക്കുന്ന ഒരു വെബ്സൈറ്റ് നിർമ്മിക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നു എന്ന് കരുതുക. ഓരോ പേജിലെയും വ്യത്യസ്ത ടെക്സ്റ്റ് എലമെന്റുകൾ കൈകാര്യം ചെയ്യാൻ ടെംപ്ലേറ്റ് ഇൻഹെറിറ്റൻസ് സഹായിക്കും. വിവർത്തനം ചെയ്ത ടെക്സ്റ്റിനായുള്ള പ്ലെയ്സ്ഹോൾഡറുകളുള്ള ഒരു അടിസ്ഥാന ടെംപ്ലേറ്റ് ഉണ്ടാക്കുക, തുടർന്ന് ഓരോ ഭാഷയ്ക്കും ചൈൽഡ് ടെംപ്ലേറ്റുകൾ ഉണ്ടാക്കുക. ഉദാഹരണത്തിന്, നിങ്ങൾക്ക് ഒരു അടിസ്ഥാന ടെംപ്ലേറ്റ് ഉണ്ടെന്നും ഇംഗ്ലീഷിനെയും ഫ്രഞ്ചിനെയും പിന്തുണയ്ക്കാൻ ആഗ്രഹിക്കുന്നുവെന്നും കരുതുക.
base.html:
{% block title %}{% endblock %}
{% block content %}{% endblock %}
index_en.html (ഇംഗ്ലീഷ് പതിപ്പ്):
{% extends "base.html" %}
{% block title %}എൻ്റെ വെബ്സൈറ്റിലേക്ക് സ്വാഗതം{% endblock %}
{% block home_link %}ഹോം{% endblock %}
{% block about_link %}എന്നെക്കുറിച്ച്{% endblock %}
{% block content %}
സ്വാഗതം!
ഇത് ഹോംപേജിന്റെ ഇംഗ്ലീഷ് പതിപ്പാണ്.
{% endblock %}
index_fr.html (ഫ്രഞ്ച് പതിപ്പ്):
{% extends "base.html" %}
{% block title %}Bienvenue sur mon site web{% endblock %}
{% block home_link %}Accueil{% endblock %}
{% block about_link %}À propos{% endblock %}
{% block content %}
Bienvenue !
Ceci est la version française de la page d'accueil.
{% endblock %}
ഈ ലളിതമായ ഉദാഹരണത്തിൽ, ഓരോ ഭാഷാ പതിപ്പും അടിസ്ഥാന ടെംപ്ലേറ്റ് വികസിപ്പിക്കുകയും തലക്കെട്ട്, നാവിഗേഷൻ ലിങ്കുകൾ, പ്രധാന ഉള്ളടക്കം എന്നിവയ്ക്കായി വിവർത്തനം ചെയ്ത ടെക്സ്റ്റ് നൽകുകയും ചെയ്യുന്നു. ഈ രീതി നിങ്ങളുടെ വെബ്സൈറ്റിന്റെ വ്യത്യസ്ത ഭാഷാ പതിപ്പുകൾ കൈകാര്യം ചെയ്യുന്നത് എളുപ്പമാക്കുന്നു.
മികച്ച രീതികൾ
- അടിസ്ഥാന ടെംപ്ലേറ്റ് ലളിതമായി സൂക്ഷിക്കുക: എല്ലാ പേജുകളിലും പങ്കിടുന്ന അത്യാവശ്യ ഘടകങ്ങൾ മാത്രമേ അടിസ്ഥാന ടെംപ്ലേറ്റിൽ ഉണ്ടാകാവൂ.
- വിവരണാത്മകമായ ബ്ലോക്ക് പേരുകൾ ഉപയോഗിക്കുക: അവയുടെ ഉദ്ദേശ്യം വ്യക്തമായി സൂചിപ്പിക്കുന്ന ബ്ലോക്ക് പേരുകൾ തിരഞ്ഞെടുക്കുക.
- നിങ്ങളുടെ ടെംപ്ലേറ്റുകൾ ചിട്ടയായി ക്രമീകരിക്കുക: ബന്ധപ്പെട്ട ടെംപ്ലേറ്റുകൾ ഡയറക്ടറികളിൽ ഒരുമിപ്പിക്കുക.
- ആഴത്തിലുള്ള നെസ്റ്റഡ് ഇൻഹെറിറ്റൻസ് ഒഴിവാക്കുക: സങ്കീർണ്ണത ഒഴിവാക്കാൻ നിങ്ങളുടെ ഇൻഹെറിറ്റൻസ് ശ്രേണിയുടെ ആഴം പരിമിതപ്പെടുത്തുക.
- `super()` ഫംഗ്ഷൻ വിവേകത്തോടെ ഉപയോഗിക്കുക: അടിസ്ഥാന ടെംപ്ലേറ്റിൽ നിന്ന് ഒരു ബ്ലോക്കിന്റെ ഉള്ളടക്കം ചേർക്കാനോ പരിഷ്കരിക്കാനോ ആവശ്യമുള്ളപ്പോൾ മാത്രം
super()
ഫംഗ്ഷൻ ഉപയോഗിക്കുക. - ടെംപ്ലേറ്റ് ഘടകങ്ങൾ ഉപയോഗിക്കുന്നത് പരിഗണിക്കുക: കൂടുതൽ സങ്കീർണ്ണമായ വെബ്സൈറ്റുകൾക്കായി, നിങ്ങളുടെ ടെംപ്ലേറ്റുകൾ ചെറുതും വീണ്ടും ഉപയോഗിക്കാവുന്നതുമായ ഘടകങ്ങളായി വിഭജിക്കുന്നത് പരിഗണിക്കുക. ജിൻജ 2-ൽ ഇത് ഇൻക്ലൂഡുകളിലൂടെയോ മാക്രോകളിലൂടെയോ നേടാനാകും, എന്നാൽ ഇവ ഒരു നല്ല ഇൻഹെറിറ്റൻസ് തന്ത്രത്തെ പിന്തുണയ്ക്കണം, മാറ്റിസ്ഥാപിക്കരുത്.
വിപുലമായ സാങ്കേതികതകൾ
1. കണ്ടീഷണൽ ബ്ലോക്ക് ഓവർറൈഡിംഗ്
ചില നിബന്ധനകളെ അടിസ്ഥാനമാക്കി ബ്ലോക്കുകൾ കണ്ടീഷണലായി ഓവർറൈഡ് ചെയ്യാൻ നിങ്ങളുടെ ടെംപ്ലേറ്റുകളിൽ കണ്ടീഷണൽ സ്റ്റേറ്റ്മെന്റുകൾ ഉപയോഗിക്കാം. ഉപയോക്താവിൻ്റെ റോളുകൾ, മുൻഗണനകൾ അല്ലെങ്കിൽ മറ്റ് ഘടകങ്ങളെ അടിസ്ഥാനമാക്കി നിങ്ങളുടെ പേജുകളുടെ ഉള്ളടക്കം ഇഷ്ടമുള്ള രീതിയിൽ മാറ്റാൻ ഇത് നിങ്ങളെ അനുവദിക്കുന്നു.
{% extends 'base.html' %}
{% block content %}
{% if user.is_authenticated %}
സ്വാഗതം, {{ user.username }}!
ഇത് അംഗീകൃത ഉപയോക്താക്കൾക്കുള്ള ഉള്ളടക്കമാണ്.
{% else %}
സ്വാഗതം!
കൂടുതൽ ഉള്ളടക്കം ആക്സസ് ചെയ്യാൻ ലോഗിൻ ചെയ്യുക.
{% endif %}
{% endblock %}
2. മാക്രോകൾ ഉപയോഗിക്കുന്നു
ജിൻജ 2 മാക്രോകൾ പൈത്തണിലെ ഫംഗ്ഷനുകൾക്ക് സമാനമാണ്. നിങ്ങളുടെ ടെംപ്ലേറ്റുകളിൽ നിന്ന് വിളിക്കാൻ കഴിയുന്ന HTML കോഡിന്റെ വീണ്ടും ഉപയോഗിക്കാവുന്ന ഭാഗങ്ങൾ നിർവചിക്കാൻ അവ നിങ്ങളെ അനുവദിക്കുന്നു. ഫോം എലമെന്റുകൾ, നാവിഗേഷൻ മെനുകൾ, ഇമേജ് ഗാലറികൾ പോലുള്ള ടെംപ്ലേറ്റ് ഘടകങ്ങൾ നിർമ്മിക്കാൻ മാക്രോകൾ ഉപയോഗിക്കാം.
ഒരു പ്രത്യേക ഫയലിൽ ഒരു മാക്രോ നിർവചിക്കുന്നതിന്റെ ഉദാഹരണം (macros.html
):
{% macro input(name, type='text', value='') %}
{% endmacro %}
ഒരു ടെംപ്ലേറ്റിൽ മാക്രോ ഇംപോർട്ട് ചെയ്ത് ഉപയോഗിക്കുന്നതിന്റെ ഉദാഹരണം:
{% from 'macros.html' import input %}
3. ടെംപ്ലേറ്റ് ഫിൽട്ടറുകൾ
നിങ്ങളുടെ ടെംപ്ലേറ്റുകളിലെ വേരിയബിളുകളുടെ ഔട്ട്പുട്ട് പരിഷ്കരിക്കാൻ ടെംപ്ലേറ്റ് ഫിൽട്ടറുകൾ നിങ്ങളെ അനുവദിക്കുന്നു. ജിൻജ 2 capitalize
, lower
, upper
, date
പോലുള്ള നിരവധി ബിൽറ്റ്-ഇൻ ഫിൽട്ടറുകൾ നൽകുന്നു. നിങ്ങളുടെ സ്വന്തം ഇഷ്ടമുള്ള ഫിൽട്ടറുകളും നിങ്ങൾക്ക് നിർവചിക്കാം.
ഒരു തീയതി ഫോർമാറ്റ് ചെയ്യാൻ date
ഫിൽട്ടർ ഉപയോഗിക്കുന്നതിന്റെ ഉദാഹരണം:
പ്രസിദ്ധീകരിച്ചത്: {{ post.date | date('%Y-%m-%d') }}
ഉപസംഹാരം
ജിൻജ 2 ഉപയോഗിച്ചുള്ള Flask ടെംപ്ലേറ്റ് ഇൻഹെറിറ്റൻസ് നിങ്ങളുടെ ടെംപ്ലേറ്റുകൾ ക്രമീകരിക്കുന്നതിനും കോഡ് വീണ്ടും ഉപയോഗിക്കുന്നതിനും നിങ്ങളുടെ വെബ് ആപ്ലിക്കേഷനിലുടനീളം സ്ഥിരത ഉറപ്പാക്കുന്നതിനുമുള്ള ശക്തമായ സാങ്കേതികതയാണ്. അടിസ്ഥാന ടെംപ്ലേറ്റുകൾ, ബ്ലോക്ക് നിർവചനങ്ങൾ, ചൈൽഡ് ടെംപ്ലേറ്റുകൾ എന്നിവയുടെ പ്രധാന ആശയങ്ങൾ മനസ്സിലാക്കുന്നതിലൂടെ, നിങ്ങളുടെ വെബ് ഡെവലപ്മെൻ്റ് എളുപ്പമാക്കുന്ന നന്നായി രൂപകൽപ്പന ചെയ്തതും പരിപാലിക്കാൻ എളുപ്പമുള്ളതുമായ ടെംപ്ലേറ്റുകൾ നിങ്ങൾക്ക് നിർമ്മിക്കാൻ കഴിയും. DRY (സ്വയം ആവർത്തിക്കാതിരിക്കുക) എന്ന തത്വം സ്വീകരിക്കുക, ശക്തവും അളക്കാവുന്നതുമായ വെബ് ആപ്ലിക്കേഷനുകൾ നിർമ്മിക്കാൻ ടെംപ്ലേറ്റ് ഇൻഹെറിറ്റൻസ് ഉപയോഗിക്കുക.
Flask ടെംപ്ലേറ്റ് ഇൻഹെറിറ്റൻസിൻ്റെ അടിസ്ഥാനപരമായ കാര്യങ്ങൾ ഈ സമഗ്രമായ ഗൈഡിൽ ഉൾക്കൊള്ളിച്ചിട്ടുണ്ട്. ഈ ലേഖനത്തിൽ പറഞ്ഞിരിക്കുന്ന ഉദാഹരണങ്ങളും മികച്ച രീതികളും പിന്തുടരുന്നതിലൂടെ, നിങ്ങളുടെ Flask പ്രോജക്റ്റുകളിൽ ടെംപ്ലേറ്റ് ഇൻഹെറിറ്റൻസ് ഫലപ്രദമായി നടപ്പിലാക്കാനും നന്നായി രൂപകൽപ്പന ചെയ്തതും പരിപാലിക്കാൻ എളുപ്പമുള്ളതുമായ വെബ് ആപ്ലിക്കേഷനുകൾ ഉണ്ടാക്കാനും കഴിയും. നിങ്ങളുടെ പ്രോജക്റ്റുകളുടെ പ്രത്യേക ആവശ്യങ്ങൾക്കനുസരിച്ച് ഈ സാങ്കേതിക വിദ്യകൾ സ്വീകരിക്കാനും നിങ്ങളുടെ ടെംപ്ലേറ്റ് ഡിസൈൻ കഴിവുകൾ കൂടുതൽ മെച്ചപ്പെടുത്തുന്നതിന് Jinja2-വിൻ്റെ വിപുലമായ ഫീച്ചറുകൾ പരീക്ഷിക്കാനും ഓർക്കുക.